The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent it is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Computing and electronic devices often execute boot code on power-up to configure resources or components of the device. Once the resources and components are configured, an operating system is loaded by the boot code and executed. Control of the device is then passed to the executing operating system, which implements functionalities or applications of the device.
To prevent the execution of unauthorized software on the device, the boot code can verify an authenticity of the operating system and software layers above the boot code. Because the boot code is the lowest level of code executed at power-on, the boot code is often hard-coded into hardware of the device to ensure authenticity of the boot code. While hard-coding the boot code prevents malignant modification of the boot code, the hard-coding also prevents modification of the boot code to correct errors. Thus, to correct an error in the boot code, the hardware of the device often requires re-design and re-fabrication, which consumes considerable time, money, and resources.